回上一頁

第一組

以深度學習結合擴增實境
於金門觀光體驗之應用

YOLO影像辨識技術

Yolo 系列 (You only look once, Yolo) 是關於物件偵測 (object detection) 的類神經網路演算法,以小眾架構 darknet 實作,實作該架構的作者 Joseph Redmon 沒有用到任何著名深度學習框架,輕量、依賴少、演算法高效率,在工業應用領域很有價值,例如行人偵測、工業影像偵測等等。

實做請先下載此連結的專案

YOLO專案

一.訓練前準備

我們首先在金門各景點拍攝了許多不同角度的照片,之後為了增加資料擊還在網路上爬蟲景點的照片來進行訓練 train

使用labelimg來幫每張圖片做景點的標籤

lab

二.修改參數

修改此專案中KD.names的檔案,裡面放的是標籤的類別。KD.data也要改,Classes後面的數字為標籤類別的個數

Image 7 Image 7

接著修改yolov3-KD.cfg_train檔案(在build\darknet\x64\cfg中)

Image 7

將文件中的classes改成標籤的類別數目(本次使用了4個) 再來修改filers ,filters的計算公式為(classes + 5)x3,這次使用了4類,所以是(4+5)*3=27,文件里一共有3處需要修改,注意,文件里有多處filter,但我們只需要修改[yolo]層之前的[convolutional]層下面的filters

Image 7

接著下載欲訓練的weight檔 (放到build\darknet\x64) 載點

三.開始訓練

使用此指令來開始訓練(切到x64下來執行)
darknet.exe detector train data/KD.data cfg/yolov3-KD.cfg_train darknet53.conv.74
每迭代100次就會在backup文件夾中上生成一个weight檔案 當avg loss在好幾個迭代中都没有下降,此時可以停止訓練了 在本專案中,發現到權重檔的迭代並非越多越好,測試了2萬、3萬、4萬後,發現2萬左右的準確率最高。應該和資料集的多寡有關。

Image 7

下圖為訓練畫面

Image 7

若要從之前的權重檔來繼續訓練,只需在darknet.exe detector train data/KD.data cfg/yolov3-KD.cfg_train後面加上backup/你的weight檔名即可

四.測試

使用此命令測試
darknet.exe detector test data/KD.data cfg/yolov3-KD.cfg_test backup/KD_yolov3_2000.weights data/test1.jpg -thresh 0.5
cfg/yolov3-KD.cfg_test 是用來測試的文件,只需要複製cfg/yolov3-KD.cfg_train的内容然後把batch和subdivisions設置為1即可 backup/KD_yolov3_2000.weights 為weight檔 data/test1.jpg 為測試圖片的路徑的路徑 -thresh 0.5 設置閾值,例如0.5,如果没有標籤框就設置低點

Image 7

上為成功辨識的畫面

五.參考資料

https://zhuanlan.zhihu.com/p/45852709
https://zhuanlan.zhihu.com/p/45845454
https://pjreddie.com/darknet/yolo/
https://mropengate.blogspot.com/2018/06/yolo-yolov3.html